package com.zw.stock_sell_storage.service;

import com.zw.stock_sell_storage.dto.PurchasingCarDto;
import com.zw.stock_sell_storage.dto.PurchasingInformationDto;

import java.util.List;

/**
 * 采购购物车业务层
 */
public interface IPurchasingCarService {

    /**
     * 根据用户id查询采购购物车列表
     * @param userId 用户id
     * @return 返回采购购物车列表
     */
    List<PurchasingCarDto> queryPurchasingCarList(int userId);

    /**
     * 根据商品编号查询购物车是否存在该商品
     * @param GoodsCode 商品编号
     * @return
     */
    PurchasingCarDto queryPurchasingCarByGoodsCode(String GoodsCode,int userId);

    /**
     * 添加采购购物车
     * @param purchasingCarDto 采购购物车商品实体对象
     * @return 返回是否添加成功
     */
    boolean addPurchasingCar(PurchasingCarDto purchasingCarDto);

    /**
     * 修改采购购物车信息
     * @param purchasingCarDto 采购购物车商品实体对象
     * @return 返回是否修改成功
     */
    boolean updatePurchasingCar(PurchasingCarDto purchasingCarDto);

    /**
     * 通过id删除采购购物车对应信息
     * @param purchasingCarId 采购购物车id
     * @return 返回是否删除成功
     */
    boolean rmvPurchasingCarById(int purchasingCarId);

    /**
     * 删除该用户的所有购物车
     * @param userId 用户id
     * @return 返回是否删除成功
     */
    boolean rmvAllPurchasingCar(int userId);

    /**
     * 采购购物车入库，导致库存改变，导致采购信息改变
     * @param purchasingInformationDto 采购信息实体对象
     * @param userId 用户id
     * @return 返回是否入库成功
     */
    boolean pushPurchasingCar(PurchasingInformationDto purchasingInformationDto,int userId);


}
